package cn.edu.ujn.finaltest.service;

import java.util.List;

import cn.edu.ujn.finaltest.dao.BaseDict;
import cn.edu.ujn.finaltest.dao.OrderItem;
import cn.edu.ujn.finaltest.util.Page;

public interface IOrderItemService {
	int deleteByPrimaryKey(int id);
	
	/**
	 * 删除nums个给定order_id、product_id的订单项目
	 * @param oriderItem 提供order_id、product_id
	 * @param nums 删除数量
	 * @return
	 */
	int deleteOrderItemsNums(OrderItem oriderItem, int nums);

    int insert(OrderItem row);

    /**
     * 自动获取适当的id，OrderItem不用给出id
     * @param row
     * @return
     */
    int insertSelective(OrderItem row);
    
    /**
     * 向order_item表插入nums条数据
     * @param orderItem 插入数据的信息，至少包括order_id、product_id
     * @param nums 插入数据的数量
     * @return 插入成功的订单项的数量
     */
    int insertSelectiveNums(OrderItem orderItem, int nums);

    OrderItem selectByPrimaryKey(int id);

    int updateByPrimaryKeySelective(OrderItem row);

    int updateByPrimaryKey(OrderItem row);
    
    /**
     * 匹配部分orderItem信息的所有订单项
     * @param orderItem 配置查询相关信息
     * @return 匹配orderItem部分信息的所有订单项
     */
	public List<OrderItem> selectOrderItemList(OrderItem orderItem);
	
	/**
	 * 根据用户名，返回用户的所有订单项
	 * @param orderItem
	 * @return
	 */
	public List<OrderItem> selectUserOrderItemList(OrderItem orderItem);

    /**
     * 清除与orderId相关的所有orderitem
     * @param orderiId
     * @return
     */
	public int deleteByOrderId(int orderId);
	
	/**
	 * 执行分页查询
	 * @param page
	 * @param rows
	 * @param product_id
	 * @param order_id
	 * @param productName
	 * @param orderNumber
	 * @return
	 */
	public Page<OrderItem> findOrderItemList(Integer page, Integer rows, OrderItem selectParams);
}
